#ifndef PLAYVIDEO_H
#define PLAYVIDEO_H

#include <QThread>
#include <iostream>
#include <QImage>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

class PlayVideo : public QThread
{
    Q_OBJECT
public:
    explicit PlayVideo(QThread *parent = nullptr);
    ~PlayVideo();
    void run(); //子线程的执行函数，主要用于使用OpenCV来读取和处理图像信息并发送给主线程，当主线程调用start时启动，调用requestInterruption时中止线程
    QImage MatToImage(Mat &mat);
signals:
    void SendVideo(QImage); //自定义的发送图像信息信号
    void SendPoint(QPoint); //自定义的发送捕获的物品中心点的坐标
    void SendRect(Rect);    //自定义的发送边界框
private:
    VideoCapture *capture;

};

#endif // PLAYVIDEO_H
